草庐IT

javascript - 从路由的 beforeModel 访问 Controller

全部标签

ruby-on-rails - 从 rake 任务调用 Controller

我想从rake任务中调用Controller操作。我的问题是准备http请求的最佳方法是什么?感谢所有提示。编辑:有人有其他提示吗?我试过这个但没有用:controller_obj=Controller.newcontroller.your_method我遇到了这个异常:rakeaborted!uninitializedconstantController编辑2:我试过:sess=ActionController::Integration::Session.newsess.post('/route','codes=3')但是我得到了(我在rake文件中需要'action_control

ruby - 如何访问父/兄弟模块方法

有没有什么方法可以在classQux中访问baz_method而无需首先提及模块namespace?当有很多嵌套模块时,代码看起来不干净。moduleFoomoduleBarmoduleBazclassQuxdefself.qux_methodFoo::Bar::Baz.baz_methodendenddefself.baz_methodendendendend 最佳答案 常量首先在词法封闭模块中查找,然后在继承链中向上查找。moduleFoomoduleBarmoduleBazclassQuxdefself.qux_methodB

ruby-on-rails - 如何在 Rails Controller 操作的 RSpec 测试中指定查询字符串?

我有一个名为yearly_csv的操作。在此操作中,我执行两个操作,如需求和供应。defyearly_csvifdemand=='true'demand_csvelsesupply_csvendend我的View中有两个单选按钮来选择其中一个操作。现在我想在RSpec中单独测试每个操作。例如,一个供应规范和另一个需求规范。我的问题是如何将单选按钮值传递给yearly_csv操作(get)? 最佳答案 在RSpec的较新版本中,您必须使用params键声明查询字符串参数:get:yearly_csv,params:{demand:'t

ruby-on-rails - RSpec Controller 测试 : missing template on create

我有一个有趣的情况。我正在测试以下简单的创建操作:#willonlybeaccessedviaAjaxdefcreateclick=Click.new(params[:click])click.save#don'treallycarewhetheritssuccessorfailureend然后我有以下非常简单的Controller规范:require'spec_helper'describeClicksController,"creatingaclick"doit"shouldcreateaclickforevent"doxhr:post,:create,:click=>{:even

ruby-on-rails - rails : Loading custom class from lib folder in controller

我创建了一个名为lib/services/my_service.rb的文件。#/lib/services/my_service.rbclassMyService...end我想在app/controllers/my_controller中使用它classMyController我收到一个错误消息,指出MyService是一个未初始化的常量。我尝试用导入它require'/lib/services/my_service.rb'但是我得到了cannotloadsuchfile--/lib/services/my_service.rb编辑:我尝试使用application.rb自动加载con

ruby-on-rails - 我如何断言 Rails 集成测试中没有路由匹配?

我有一个Rails3集成测试来测试我的路线。它包含如下测试:assert_routing("/#{@category.url.path}/#{@foo.url.path}",{:controller=>'foo',:action=>'show',:category=>@category.to_param,:foo=>@foo.to_param})我还想测试一个没有路由匹配的情况。显然,测试生成在这种情况下没有任何意义,所以我只需要assert_recognizes的倒数。我希望能够做这样的事情:assert_not_recognized('/adfhkljkdhasjklhjkldfa

ruby-on-rails - 在 Rails 中,我可以在它返回之前在 Action 中访问 response.body 吗?

在Rails中,我可以在action返回之前访问response.body吗?假设我想在它返回之前做一些最终的字符串替换,我可以访问response.body,即View返回的响应吗? 最佳答案 在你的Controller中尝试after_filter。您应该可以从那里编辑您的response.body。对我来说,我需要删除xml中的一些ASCII字符,因此我这样做了。after_filter:sanitize_xmldefsanitize_xml#cleantheresponsebodybyaccessingresponse.bo

ruby-on-rails - Rails 路由 - 资源的自定义路由

我目前正在构建一个Rails应用程序,我想坚持使用REST和资源等所有这些花哨的东西,但我想稍微自定义一下我的路线。我希望我的GET路由更详细一些-我正在创建的应用程序是一个简单的博客,所以我更喜欢GET/posts/而不是GET/posts/11-我的第一篇文章。任何想法如何做到这一点?未在网上找到任何内容。 最佳答案 路线:map.resources:posts型号:classPost应该可以解决问题。顺便说一句:http://railscasts.com/episodes/63-model-name-in-url

ruby-on-rails - RSpec 生成请求规范而不是 Controller 规范

我正在使用rspec-rails但我想在调用railsgcontrollerBlahs时进行更改,我希望创建spec/requests/,而不是spec/controllers/.谢谢! 最佳答案 railsgintegration_testfoo一切顺利! 关于ruby-on-rails-RSpec生成请求规范而不是Controller规范,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

ruby-on-rails - Rails 3.1 API 路由

我有一个Rails3.1应用程序,我想为其创建一个API。我希望我的网址看起来像:www.example.com/controller/action//NormalWebrequestsapi.example.com/controller/action.json//APIrequests第一个用于正常请求,另一个显然用于我的API内容。我希望这两个都映射到同一个Controller/Action。如何设置我的应用程序,使其在www上时仅响应HTML,而在api子域上时仅响应json、xml等? 最佳答案 最简单的方法(imo)是使用